﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace instantget
{
    public partial class ListaTargyakUC : UserControl
    {
        public DateTime ido;
        string user;
        int kepPanelMagasság, kepPanelTeteje, pass;
        instantgetDataSet.licittargyRow dr;

        public ListaTargyakUC(instantgetDataSet.licittargyRow dr)
        {
            this.dr = dr;
            InitializeComponent();
            kepPanelMagasság = kepekPanel.Height;
            kepPanelTeteje = kepekPanel.Top;
            kepekPanel.BackColor = Properties.Settings.Default.Hatterszin;

            pass = Properties.Settings.Default.aktualisJelszo;
            user = Properties.Settings.Default.aktualisUser;
            
            NevEsIdo();

            licitTableAdapter.FillByTargy(instantgetDataSet.licit, dr.ta_id);
            licittargyTableAdapter.Fill(instantgetDataSet.licittargy);

            LicitEsKivasarlas();

            if (dr.IsegyebNull())
            {
                egyeb_TxtBx.Text = "";
            }
            else
            {
                egyeb_TxtBx.Text = dr.egyeb;
            }
            

            kepTableAdapter.FillByTargy(instantgetDataSet.kep, dr.ta_id);

            KepKirakos();
        }

        private void KepPanelRestore()
        {
            kepekPanel.Height = kepPanelMagasság;
            kepekPanel.Top = kepPanelTeteje;
        }

        private void LicitEsKivasarlas()
        {
            string kijelzes;

            var licitállás = from x in licitTableAdapter.GetDataByTargy(dr.ta_id) select x;
	        if (licitállás.First().nnev == user && licitállás.First().pw == pass)
	        {
                kijelzes = "Saját tárgy";
	            licit_Ar_Max.Text = kijelzes;
	            uj_Licit.Enabled = false;
	            button1.Enabled = false;
                toolTip1.SetToolTip(uj_Licit, kijelzes);
                toolTip1.SetToolTip(button1, kijelzes);

                kijelzes = "Saját tárgy";
                van_NincsLbl.Text = kijelzes;
	        }
            else if (licitállás.Last().nnev == user && licitállás.Last().pw == pass)
            {
                kijelzes = "Várjon a licittel";
                licit_Ar_Max.Text = kijelzes;
	            uj_Licit.Enabled = false;
	            button1.Enabled = false;
                toolTip1.SetToolTip(uj_Licit, kijelzes);
                toolTip1.SetToolTip(button1, kijelzes);

                kijelzes = "Várjon vele";
                van_NincsLbl.Text = kijelzes;
            }
	        else
            {
	            licit_Ar_Max.Text = licitállás.Last().licit_ar.ToString() + " Ft.";
                kijelzes = "A Minimális licitnövekedmény 5%-a a megelőző licitnek";
                toolTip1.SetToolTip(uj_Licit, kijelzes);
	            uj_Licit.Minimum = Convert.ToInt32(licitállás.Last().licit_ar * 1.05);
	            button1.Click +=button1_Click;

	            if (!dr.IsNull("kivasarlas_ar"))
	            {
                    if (dr.kivasarlas_ar !=0)
                    {
                        uj_Licit.Maximum = dr.kivasarlas_ar;
                        kijelzes = "Van";
                        van_NincsLbl.Text = kijelzes;
                        label4.Enabled = true;

                        kivasarlas_Ar.Enabled = true;
                        kivasarlas_Ar.Text = dr.kivasarlas_ar.ToString() + " Ft.";

                        button2.Enabled = true;
                        button2.Click += button2_Click;
                    }
                    else
                    {
                        kijelzes = "Nincs";
                        van_NincsLbl.Text = kijelzes;
                    }
		             
	            }
                else
	            {
                    kijelzes = "Nincs";
                    van_NincsLbl.Text = kijelzes;
	            }
	        }
        }

        private void NevEsIdo()
        {
            ta_Nev.Text = dr.ta_nev;
            ido = dr.auck_veg;
            TimeSpan elteltIdo = ido - DateTime.Now;
            timeLbl.Text = elteltIdo.ToString(@"dd\ \n\a\p\ hh\:mm\:ss");
        }

        private void KepKirakos()
        {
            var kepek = from x in kepTableAdapter.GetDataByTargy(dr.ta_id) select x;
            int i = 0;
            if (kepek.Count() != 0)
            {
                foreach (instantgetDataSet.kepRow kep in kepek)
                {
                    AtmeretezendoKep temp = new AtmeretezendoKep();
                    temp.Image = ByteToKep(kep.image);
                    temp.Size = new Size(128, 128);
                    temp.SizeMode = PictureBoxSizeMode.Zoom;
                    temp.Top = 5;
                    temp.Left = 5 + (temp.Width + 5) * i;
                    temp.Meretezes = false;
                    temp.Click += temp_Click;
                    kepekPanel.Controls.Add(temp);
                    i++;
                }
            }
            else
            {
                kepekPanel.Visible = false;
                label6.Visible = false;
            }
        }

        private Image ByteToKep(byte[] byteArrayIn)
        {
            MemoryStream ms = new MemoryStream(byteArrayIn);
            Image kepecske = Image.FromStream(ms);
            return kepecske;
        }

        void temp_Click(object sender, EventArgs e)
        {
            AtmeretezendoKep kep = (AtmeretezendoKep)sender;
            if (!kep.Meretezes)
            {
                kep.Size = new Size(kep.Image.Width, kep.Image.Height);
                kepekPanel.Height = this.Height - 15;
                kepekPanel.Top = 5;
                kep.Meretezes = true;
            }
            else
            {
                kep.Size = new Size(128, 128);
                KepPanelRestore();
                kep.Meretezes = false;
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Ezzel ön licitál a tárgyra. Biztos benne?", "Licitálás",MessageBoxButtons.YesNo,MessageBoxIcon.Question)== DialogResult.Yes)
	        {
                int licit = (int)uj_Licit.Value;
                bool tulajdon = false;

                UjLicitalo(licit, tulajdon);

	            button1.Enabled = false;
	        }
            
        }

        private void UjLicitalo(int licit, bool tulajdon)
        {
            instantgetDataSet.licitRow lr = instantgetDataSet.licit.NewlicitRow();
            lr.ta_id = dr.ta_id;
            lr.pw = pass;
            lr.nnev = user;
            lr.idobelyeg = DateTime.Now;
            lr.licit_ar = (int)licit;
            lr.tulaj = tulajdon;
            instantgetDataSet.licit.Rows.Add(lr);
            licitTableAdapter.Update(instantgetDataSet.licit);
            MessageBox.Show("Sikeres a licitfelvétel!", "Licitálás", MessageBoxButtons.OK);
            LicitEsKivasarlas();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Ezzel ön megveszi a(z)" + dr.ta_nev + "-t. Biztos Benne?", "Kivásárlás", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
	        {
                int licit = (int)dr.kivasarlas_ar;
                bool tulajdon = true;

                UjLicitalo(licit, tulajdon);

                instantgetDataSet.licittargyRow ltr = instantgetDataSet.licittargy.FindByta_id(dr.ta_id);
                ltr.elkelt = true;
                licittargyTableAdapter.Update(instantgetDataSet.licittargy);
                MessageBox.Show("A Tárgy az öné!", "Kivásárlás", MessageBoxButtons.OK);

	            button2.Enabled = false;
	            kivasarlas_Ar.Text = "Elkelt";
            }
        }
    }
}
